約 4,278,147 件
https://w.atwiki.jp/newsokuteki/pages/30.html
80 : ストック(dion軍):2009/05/05(火) 14 08 52.65 ID RBwHZTEu *情報弱者 【 ブラウザ 】 Sleipnir2、Lunascape 【. メーラー 】 OutlookExpress、EdMax、nPOP 【. ランチャー ..】 CLaunch、Clocklauncher、nrLaunch 【. ファイラー 】 MDIE、QTTabBar 【 動画再生 】 WindowsMediaPlayer、GOMPlayer 【 音楽再生 】 iTunes、Winamp 【 セキュリティ 】 avast!、ZoneAlarm、Ad-aware *中級者 【 ブラウザ 】 Google Chrome、Donut RAPT 【. メーラー 】 QMAIL3 【. ランチャー ..】 Arttips、bluewind 【. ファイラー 】 SeeZ、だいなファイラー、まめFile5 【 動画再生 】 VLC、DV、GesPlayer 【 音楽再生 】 Songbird、Fittle、Lilith 【 セキュリティ 】 AVG、ComodoInternetSecurity、SpybotS D *上級者 【 ブラウザ 】 Firefox3、Opera、KIKI、unDonut+mod 【. メーラー 】 Thunderbird 【. ランチャー ..】 Orchis、fenrir、CraftLaunch 【. ファイラー 】 X-Finder、あふ、内骨格 【 動画再生 】 MPCHC、Qonoha、KMPlayer 【 音楽再生 】 foobar2000 【 セキュリティ 】 AviraAntiVir、BitDefenderCL、OnlineArmorPersonalFirewall SpywareTerminator、SpywareBlaster、SystemSafetyMonitor 名前 コメント
https://w.atwiki.jp/mash2190/pages/78.html
Ubuntu 10.04/12.04 LTS 日本語版インストール設定 Ubuntuをデスクトップクライアントとして使用するための環境構築メモ 追加ソフトウェアのインストール sudo apt-get install gconf-editor dconf-tools gdebi synaptic tomboy leafpad vim ※vimは最新版をビルドする場合は不要 ビルド環境を構築 sudo apt-get install build-essential C++インクルードファイル sudo apt-get install g++ Ubuntuでsu $ sudo passwd root ホームディレクトリを英語表記 LANG=C xdg-user-dirs-gtk-update (12.04/14.04共通) 「Don t ask me this again」をチェックして「Update Names」をクリック ※日本語ディレクトリにファイルが作成済みの場合は別ディレクトリとして残ってしまうので デスクトップおよびホーム内のディレクトリすべて空なのを確認してから名称を変更する デスクトップを英語表記 ユーザーメニュー(User accounts) Unlock lauguege English(Unitede States) ログオフ/再起動 Ubuntu 10.04 デスクトップアイコンを表示 Alt+F2で、アプリケーションの実行を起動、gconf-editorと入力して実行 設定エディターから apps nautilus desktop 表示させたいアイコンにチェックを入れる Ubuntu 10.04 起動時の「バッテリーが壊れている」を非表示 Alt+F2で、アプリケーションの実行を起動、gconf-editorと入力して実行 設定エディター apps gnome-power-manage notify low_capacity をオフ Ubuntu 12.04 Unityを無効 gnome-panelをインストール $ sudo apt-get install gnome-panel ログオフしてログイン時にUbuntuアイコンをクリックしてgnome-classicを選択 Ubuntu 12.04 デスクトップアイコンを表示 gnome-tweak-toolをインストール $ sudo apt-get install gnome-tweak-tool [システムツール System Tools] [設定 Preferences] [高度な設定 Advanced settings] [デスクトップ Desktop] アイコンをON Ubuntu 12.04 オーバーレイスクロールバーを無効 端末の場合 $ sudo sh -c echo "export LIBOVERLAY_SCROLLBAR=0" /etc/X11/Xsession.d/80overlayscrollbars $ sudo rm /etc/X11/Xsession.d/80overlayscrollbars 元に戻す場合 dconf-Editorで編集する場合 ユーザーの場合 System Tools dconf Editor org gnome desktop interface 右側の一番下の ubuntu-overlay-scroollbarsのチェックを外す rootの場合 $ sudo dconf-editorで起動して同じ箇所のチェックを外す クローズボタンを右側に変更(10.04/12.04 GNOME) メニュー付き $ gconftool-2 -s "/apps/metacity/general/button_layout" -t string "menu minimize,maximize,close" メニュー無し $ gconftool-2 -s "/apps/metacity/general/button_layout" -t string " minimize,maximize,close" 元に戻す場合 $ gconftool-2 -s "/apps/metacity/general/button_layout" -t string "close,minimize,maximize " Tomboy自動起動 name tomboy command tomboy start Comment Start tomboy when Gnome starts ※任意 クリップボード管理 Ubuntuのクリップボードは何かと使えないので Glipperをインストール sudo apt-get install glipper 自動起動に設定されるので 再起動すればパネル表示される preference Copy(Ctrl+C/Ctrl+V)チェックで Ctrl+Alt+cで履歴ウインドウがポップアップする 端末の大きさを指定する ランチャから開く場合 gnome-terminal --geometry=100x36 メニューから開く場合 $ sudo gedit /usr/share/applications/gnome-terminal.desktop Exec=gnome-terminal --geometry=100x36 sshでサーバーに接続 他PCのid_rsaを使いまわす $ mkdir ~/.ssh .sshディレクトリーにid_rsaをコピー $ chmod 0600 .ssh/id_rsa ibusを自動起動して日本語入力を可能にする System Tools Preferences Startup Applications 右メニュー 自動起動アプリケーション(Startup Applications) 追加(add)ボタンを押して以下のように登録 Name ibus Command ibus-daemon -r -d -x Comment Start IBus daemon when Gnome starts ※任意 日本語入力設定 System Tools ibus起動 ibusメニュー preferences input Methodタブ Customize active input method にチェックを入れる select an input method Japanese - Anthyを選択 Advancedタブ 以下にチェックを入れる -Use system keyboard layout -Share the same input method among all applications キーボード設定 System Tools System Settings キーボードレイアウト keyboard Layout Layoutsタブ 右下options CapsLockキー項目:デフォルト変更なし Controlキー項目:CapsLockキーをCtrlとして扱う(CapsLock as Ctrl) Xサーバーkillキーシーケンス(Key sequence to kill the X server) Control+Alt+Backspaceにチェックを入れる Ctrl+Alt+BackspaceでX強制終了/再起動 端末のキーボードショートカットを無変換キー System Tools System Settings キーボード keyboard ショートカット Shortcutsタブ [端末の起動]を選択 無変換キーをクリックする 右側のショートカットにMuhenkanと表示されればOK 最近開いたドキュメントを無効にする(GNOME) .recently-used.xbelを削除して同名のディレクトリを作成する # rm .recently-used.xbel # mkdir .recently-used.xbel システムのIPv6無効化 「端末」を起動して、「sudo gedit /etc/sysctl.conf」コマンドでgeditを起動 sysctl.confファイルの一番下の行に、「net.ipv6.conf.all.disable_ipv6 = 1」と入力して保存。 Ubuntuを再起動すると有効に ログインサウンド無効 システムメニュー 自動起動するアプリケーション 自動起動するプログラム GNOME Login Soundのチェックを外す $ sudo gedit /usr/share/gnome/autostart/libcanberra-login-sound.desktop 最終行に以下を追加 NoDisplay=false Ubuntu 12.04 自動ログイン設定 パネル右上のユーザーアイコン ユーザーアカウントの設定 右上のロック解除を押してパスワードを入力 自動ログインをオンにする 自動ログイン時の「キーリングのロックを解除」を非表示 アプリケーション システムツール 設定 パスワードと鍵 パスワード:login を右クリックから削除 右クリックに「端末の中に開く」を追加 sudo apt-get install nautilus-open-terminal ログオフ/再起動 右クリックに「管理者として開く」を追加 Ubuntu 10.04 sudo apt-get install nautilus-gksu Ubuntu 12.04 sudo add-apt-repository ppa nae-team/ppa sudo apt-get update sudo apt-get install nautilus-open-as-root ログオフ/再起動 右クリックに「圧縮/アーカイブマネージャーで開く」を追加 ソフトウェアセンターでfile Rollerで検索、Archive Managerをインストール Ubuntu 12.04は標準でインストール済み Adobe Readerインストール ソフトウェアセンター 編集メニュー ソフトウェアソース 他のソフトウェアタブ Canonicalのパートーナーにチェックを入れてソフトウェアセンターは終了 端末でインストール sudo apt-get update sudo apt-get install adobereader-jpn Adobe Flash Playerインストール ソフトウェアセンター 右上の検索窓に「Flash Player」と入力してEnter Adobe Flash pluginインストール Synaptic flashplugin-installerを検索 右クリックから「インストール指定」 「適用」をクリック 端末の場合 $ sudo apt-get install flashplugin-installer ※最近のウェブはHTML5に移行してるので必ずしもインストールの必要はない Sun(Oracle)Javaインストール $ sudo add-apt-repository ppa webupd8team/java $ sudo apt-get update $ sudo apt-get install oracle-java7-installer Windowsフォントの導入 ユーザーディレクトリにインストールする場合 ホームに .fonts フォルダを作成して全フォントをコピー usrディレクトリにインストールする場合 /usr/share/fonts/truetype/にフォント別フォルダ作成 $ sudo mkdir meiryo $ sudo cp -f *.ttf /usr/share/fonts/truetype/meiryo 面倒ならWinディレクトリとか作成して全フォント一括インストールでOK $ fc-cache -vf フォントキャッシュクリア 端末フォントを変更する (例)Ricty for Powerline 12に変更する場合 gconftool-2 --set /apps/gnome-terminal/profiles/Default/font --type string "Ricty for Powerline 12" gconf-editorから編集する場合 $ sudo apt-get install gconf-editor ユーザー端末フォント $ gconf-editor apps gnome-terminal profiles Default を選択 右側のfont値をRicty for Powerline 12に変更 root端末フォント $ sudo gconf-editorでroot起動して同じ箇所を変更 gWakeOnLanでWOL起動 $ sudo apt-get install gwakeonlan MACアドレスと名称を設定する UDP Port numberは9のまま FTPクライアントにFileZilla $ sudo apt-get install filezilla メニューから起動するか 端末なら $ filezilla TeamViwerでリモートデスクトップ http //www.teamviewer.com/ja/download/linux/ Ubuntu Debian deb 32-Bit/64-Bit Multiarchをダウンロード ソフトウェアセンターかGdebiでインストール 他PCをリモートするだけなら設定は不要 Dropboxインストール https //www.dropbox.com/ja/install?os=linux 公式サイトからdebパッケージをダウンロード ソフトウェアセンター/Gdebでインストール Synapticや端末でもインストール可 sudo apt-get install nautilus-dropbox インストール後の設定はWindows版と同じ Wineインストール 古いWineを入れてる場合は削除 apt-get remove --purge wine rm -rf $HOME/.wine rm -f $HOME/.config/menus/applications-merged/wine* rm -rf $HOME/.local/share/applications/wine rm -f $HOME/.local/share/desktop-directories/wine* rm -f $HOME/.local/share/icons/wine_xxx_*.xpm ソフトウエアセンターやsynapticではバージョンが古いので PPAから最新版をインストール $ sudo apt-add-repository ppa ubuntu-wine/ppa $ sudo apt-get update $ sudo apt-get install wine Sublime-textインストール $ sudo add-apt-repository ppa webupd8team/sublime-text-2 $ sudo apt-get update $ sudo apt-get install sublime-text geditの文字化け修正(UTF-8の場合は不要) 自動判定する文字コードを登録 $ gsettings set org.gnome.gedit.preferences.encodings auto-detected "[ UTF-8 , CURRENT , SHIFT_JIS , EUC-JP , ISO-2022-JP , UTF-16 ]" 自動判定する文字コードの保存設定を追加 $ gsettings set org.gnome.gedit.preferences.encodings shown-in-menu "[ UTF-8 , SHIFT_JIS , EUC-JP , ISO-2022-JP , UTF-16 ]" geditが不正終了した後に同じファイルを開くと 他ウインドウで開かれていると警告が出る場合 ログオフか再起動してgeditを保存せずに終了 VLC字幕の文字化けを修正 ツール 設定 字幕とOSD 適した字幕の言語:81 標準のエンコーディング: 字幕(srt)ファイルのエンコード フォント:/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf ※日本語フォントに変更(Takao、WinフォントならMeiryo UIなど) FirefoxでHulu字幕が文字化けする場合 $ sudo apt-get install ttf-arphic-uming $ cd /usr/share/fonts/truetype/arphic $ sudo cp ../takao-mincho/TakaoMincho.ttf uming.ttc 市販DVD再生を可能にする ソフトウェアセンターから「Ubuntu restricted extras」をインストール 端末の場合 $ sudo apt-get install ubuntu-restricted-extras あらゆる動画形式に対応 sudo gedit /etc/apt/sources.list.d/videolan.list debianリポジトリーを追記する deb http //download.videolan.org/pub/debian/stable/ / deb-src http //download.videolan.org/pub/debian/stable/ / wget -O - http //download.videolan.org/pub/debian/videolan-apt.asc|sudo apt-key add - sudo apt-get update sudo apt-get install libdvdcss2 vlc mplayer gnome-mplayer 一部のmkvが再生できない場合はMPlayerをMPlayer2に置き換える sudo add-apt-repository ppa ripps818/coreavc sudo apt-get update sudo apt-get install mplayer ※Nvidia GeforceでVDPAU(動画再生支援)を利用している場合 MPlayer2に置き換えるとVDPAU再生ができなくなる場合あり コーデックパックのインストール wget http //www.deb-multimedia.org/pool/non-free/w/w32codecs/w32codecs_20110131-dmo2_i386.deb wget http //www.deb-multimedia.org/pool/non-free/w/w64codecs/w64codecs_20071007-dmo2_amd64.deb アーカイブをソフトウェアセンター/Gdebでインストール 端末インストールの場合 dpkg -i w32codecs_20110131-dmo2_i386.deb dpkg -i w64codecs_20071007-dmo2_amd64.deb mplayerでDVDを再生 $ mplayer dvd // gnome-mplayerで再生できないmkvファイルは 端末から直接指定して開く $ mplayer ファイル名.mkv その他/備忘録 バージョン確認 lsb_release -a デバイス(ホスト名)の変更 sudo gedit /etc/hostname sudo gedit /etc/hosts apt-get掃除 sudo apt-get clean sudo apt-get -f install sudo apt-get autoremove パッケージキャッシュ削除 du -sh /var/cache/apt/archives/ キャッシュサイズ参照 sudo apt-get clean キャッシュを削除 dpkgパッケージ管理コマンド dpkg -i パッケージのインストール dpkg -r パッケージを削除 // etc以下の設定を残す dpkg --purge // すべてのファイルと設定を削除 dpkg -l パッケージリスト dpkg -l | grep パッケージ名 grep検索 不要カーネルの削除 dpkg -l | grep linux-image インストール済みカーネルの表示 dmesg | grep Linux 起動中カーネルの表示 sudo apt-get remove --purge linux-image-2.6.xx-xx-386 カーネル削除 Ubuntu 12.04 デフラグ $ sudo e4defrag -c /dev/sda1 分析のみ ※score 0-30の場合はデフラグ不要 $ sudo e4defrag /dev/sda1 デフラグ実行 GNOMEパネル初期化 $ sudo apt-get install dconf-tools $ dconf reset -f /org/gnome/gnome-panel/ $ nohup gnome-panel --replace .bashrc初期化 $ cp -f /etc/skel/.bashrc ~/ Grubの再インストール sudo mkdir /mnt/ubuntu sudo mount /dev/sdb1 /mnt/ubuntu sudo grub-install --root-directory=/mnt/ubuntu /dev/sda LiveCDからボリュームをマウントしてエラー修復 Boot from LiveCD $ sudo mkdir /mnt/ubuntu2 マウントポイント作成 $ sudo mount /dev/sda1 /mnt/ubuntu2 /dev/sda1をマウント $ cd /mnt/ubuntu2/etc/profile.d $ sudo rm critical error.sh DELL Optiplex等でUbuntu 12.04がRebootできない場合 $ vi /etc/default/halt INIT_HALT=POWEROFF を追記 上記でも起動できない場合はgrub設定を追加 $ vi /etc/default/grub GRUB_CMDLINE_LINUX="reboot=bios" ← GRUB_CMDLINE_LINUX行を変更 $ update-grub $ reboot
https://w.atwiki.jp/hiroyuki12/pages/65.html
%define name dvdauthor %define version 0.6.14 %define release 0vlmp1 Summary Latest DVDAuthor package Name %{name} Version %{version} Release %{release} Source0 http //prdownloads.sourceforge.net/dvdauthor/%{name}-%{version}.tar.gz %{?nosrc NoSource 0} License GNU GPL Group Applications/Multimedia URL http //dvdauthor.sourceforge.net/ Requires libxml2 = 2.6.0, libdvdread BuildRequires libxml2-devel = 2.6.0, libdvdread-devel BuildRoot %{_tmppath}/%{name}-%{version}-%{release}-root Vendor none Distribution none Packager Munehiro Yamamoto myamamoto@g.math.s.chiba-u.ac.jp %description dvdauthor is a program that will generate a DVD movie from a valid mpeg2 stream that should play when you put it in a DVD player. %prep %setup -q %build %configure make %install %{__rm} -rf %{buildroot} %makeinstall %clean %{__rm} -rf %{buildroot} %files %defattr(-,root,root) %doc {COPYING,ChangeLog,INSTALL,README,TODO} %{_bindir}/* %{_mandir}/man1/* %{_datadir}/dvdauthor/* %changelog * Sat Aug 25 2007 Munehiro Yamamoto myamamoto@g.math.s.chiba-u.ac.jp 0.6.14-0vlmp1 - initial buiild for Vine Linux 4.1 * Fri Feb 21 2003 Scott Smith 0.4.4 - adapted into source tree * Fri Feb 21 2003 Dr. Peter Bieringer pb at bieringer dot de 0.4.3 - initial
https://w.atwiki.jp/e-media/pages/4.html
ニュース @wikiのwikiモードでは #news(興味のある単語) と入力することで、あるキーワードに関連するニュース一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_174_ja.html たとえば、#news(wiki)と入力すると以下のように表示されます。 【グランサガ】リセマラ当たりランキング - グランサガ攻略wiki - Gamerch(ゲーマチ) マニュアル作成に便利な「画像編集」機能を提供開始! - ナレッジ共有・社内wikiツール「NotePM」 (2021年12月6日) - エキサイトニュース マニュアル作成に便利な「画像編集」機能を提供開始! - ナレッジ共有・社内wikiツール「NotePM」 - PR TIMES 「Wiki」創設者のPC 競売に - auone.jp 篠原悠希×田中芳樹が明かす「歴史ファンタジー小説ならではの悩み」(現代ビジネス) - Yahoo!ニュース - Yahoo!ニュース 【Apex Legends】ヴァルキリーの能力と評価【エーペックス】 - Gamerch(ゲーマチ) モンハンライズ攻略Wiki|MHRise - AppMedia(アップメディア) 【ウインドボーイズ】リセマラ当たりランキング(最新版) - ウインドボーイズ攻略Wiki - Gamerch(ゲーマチ) ポケモンBDSP(ダイパリメイク)攻略wiki - AppMedia(アップメディア) 【テイルズオブルミナリア】リセマラ当たりランキング - TOルミナリア攻略Wiki - Gamerch(ゲーマチ) SlackからWikiへ!シームレスな文章作成・共有が可能な「GROWIBot」リリース - アットプレス(プレスリリース) ドラゴンクエストけしケシ攻略Wiki - Gamerch(ゲーマチ) 【ウマ娘】チャンピオンズミーティングの攻略まとめ - Gamerch(ゲーマチ) 【ウマ娘】ナリタブライアンの育成論|URAシナリオ - Gamerch(ゲーマチ) サモンズボード攻略wiki - GameWith 【スタオケ】カード一覧【金色のコルダスターライトオーケストラ】 - Gamerch(ゲーマチ) 【スマブラSP】ソラのコンボと評価【スマブラスペシャル】 - Gamerch(ゲーマチ) 【ブレフロレゾナ】リセマラ当たりランキング【ブレイブフロンティアレゾナ】 - ブレフロR攻略Wiki - Gamerch(ゲーマチ) 【ポケモンユナイト】サーナイトの評価と性能詳細【UNITE】 - Gamerch(ゲーマチ) 【ガーディアンテイルズ】ギルドレイド戦(秘密の研究所)の攻略とおすすめキャラ【ガデテル】 - Gamerch(ゲーマチ) 【ENDER LILIES】攻略チャートと全体マップ【エンダーリリィズ】 - Gamerch(ゲーマチ) 【ウマ娘】あんしん笹針師の選択肢はどれを選ぶべき? - Gamerch(ゲーマチ) 【ポケモンユナイト】アップデート情報・キャラ調整まとめ - ポケモンユナイト攻略Wiki - Gamerch(ゲーマチ) 【Apex】シーズン11の新要素と最新情報まとめ【エーペックス】 - Gamerch(ゲーマチ) ロストジャッジメント攻略Wiki - Gamerch(ゲーマチ) 【Among us】新マップThe Airship(エアシップ)の解説【アモングアス】 - Gamerch(ゲーマチ) ハーネスについて小児科医の立場から考える(坂本昌彦) - 個人 - Yahoo!ニュース - Yahoo!ニュース ゼルダ無双攻略Wiki|厄災の黙示録 - AppMedia(アップメディア) ウマ娘攻略Wiki - AppMedia(アップメディア) ゲトメア(ゲートオブナイトメア)攻略Wiki - Gamerch(ゲーマチ) 【白夜極光】リセマラ当たりランキング - 白夜 極光 wiki - Gamerch(ゲーマチ) お蔵入りとなった幻の『スーパーマリオ』 オランダの博物館でプレイ可能?(リアルサウンド) - Yahoo!ニュース - Yahoo!ニュース ナレッジ共有・社内wikiツール「NotePM」が「ITreview Best Software in Japan 2021」のTOP50に選出 - PR TIMES 真女神転生5攻略Wiki|メガテン5 - AppMedia(アップメディア) 【B4B】近接ビルドデッキにおすすめのカード【back4blood】 - Gamerch(ゲーマチ) ポケモンスナップ攻略wiki - AppMedia(アップメディア) 富野由悠季「ブレンパワード」作り直したい!ファンを前に意欲(シネマトゥデイ) - Yahoo!ニュース - Yahoo!ニュース 【ウマ娘】査定効率から見た取るべきスキルとおすすめキャラ【プリティーダービー】 - Gamerch(ゲーマチ) 【スマブラSP】カズヤの評価とコンボ【スマブラスペシャル】 - Gamerch(ゲーマチ) メモ・ドキュメント・wiki・プロジェクト管理などオールインワンのワークスペース「Notion」が日本語ベータ版提供開始 - TechCrunch Japan 【ギアジェネ】リセマラ当たりランキング【コードギアス】 - ギアジェネ攻略Wiki - Gamerch(ゲーマチ) モンスターファーム2(MF2)攻略wiki|アプリ・Switch移植版 - AppMedia(アップメディア) 【ブラサジ】最強キャラTierランキング【ブラックサージナイト】 - Gamerch(ゲーマチ) 【パワプロ】鬼滅の刃コラボ情報まとめ - Gamerch(ゲーマチ) 【SPAJAM2021】第3回予選大会は「クイズ!WIKIにゃんず!」を開発したチーム「かよちゃんず」が最優秀賞! | gamebiz - SocialGameInfo 検索結果における「ナレッジパネル」の役割とは・・・ウィキメディア財団とDuckDuckGoの共同調査 - Media Innovation ナレッジ共有・社内wikiツール「NotePM」が「BOXIL SaaS AWARD 2021 Autumn」にて「コラボレーション部門」を受賞! - PR TIMES 【ポケモンユナイト】カメックスの評価と立ち回り【UNITE】 - Gamerch(ゲーマチ) 「ゼルダの伝説 BotW」のマラソンで23秒? 驚きの速さで完走した方法が話題(リアルサウンド) - Yahoo!ニュース - Yahoo!ニュース Wikipediaが「中国人編集者の身の安全を守るため」に一部の編集者アカウントをBANに - GIGAZINE BTS(防弾少年団)のV、8月のWikipedia閲覧数が韓国アーティストで1位!グループでは4ヶ月連続トップ - Kstyle 【イース6オンライン】リセマラ当たりランキング|召喚ガチャの開放条件は? - Gamerch(ゲーマチ) BacklogからNotePMへwiki情報を自動API連携する「Backlog to NotePM」をSaaStainerに掲載開始 - PR TIMES ライザのアトリエ2攻略Wiki - AppMedia(アップメディア) 真女神転生3リマスター攻略Wiki|メガテン3 - AppMedia(アップメディア) ガーディアンテイルズ(ガデテル)攻略Wiki - Gamerch(ゲーマチ) タスクも文書もWikiもデータベースもまとめて管理できる「Notion」とは? - ASCII.jp ナレッジ共有・社内wikiツール「NotePM」が、見るだけ専用ユーザー『無料』の新プランを発表! - PR TIMES 【かのぱず】リセマラ当たりランキング【彼女お借りします】 - Gamerch(ゲーマチ) 【乃木フラ】リセマラの必要はある?【乃木坂的フラクタル】 - Gamerch(ゲーマチ) メトロイド ドレッド攻略Wiki - Gamerch(ゲーマチ) 【パワプロ】生放送まとめ|パワフェス2021 - パワプロ攻略Wiki - Gamerch(ゲーマチ) ルーンファクトリー5攻略wiki|ルンファク5 - AppMedia(アップメディア) 【ふんクロ】リセマラ当たりランキング【シャーマンキング】 - ふんクロ攻略Wiki - Gamerch(ゲーマチ) 簡単操作で自分専用Wikiを構築できるMarkdownエディタ「Obsidian」のモバイル版を使ってみた - GIGAZINE 【ポケモンユナイト】配信時間は何時から?スタートできない?【UNITE】 - Gamerch(ゲーマチ) ディーサイドトロイメライ攻略Wiki - Gamerch(ゲーマチ) 【ウマ娘】体操服の変更方法と法則性 - Gamerch(ゲーマチ) 情報マネジメントツール「Huddler」がwiki機能を刷新 - PR TIMES シェアエコ配送アプリ「DIAq(ダイヤク)」のアンカーアプリで、高層ビル・商業施設の入館方法などお役立ち情報をまとめた「DIAqwiki」を公開 - アットプレス(プレスリリース) 異常熱波のカナダで49.6度、いま北米で起きていること(森さやか) - 個人 - Yahoo!ニュース - Yahoo!ニュース 【ツイステ】マスターシェフの攻略~辛味のふるさと~【料理イベント】 - Gamerch(ゲーマチ) 【ラグナロクオリジン】リセマラは不要?おすすめ職業は?【ラグオリ】 - Gamerch(ゲーマチ) 【アイプラ】リセマラ当たりランキング【アイドリープライド】 - AppMedia(アップメディア) 白夜極光攻略wiki - AppMedia(アップメディア) 【バイオミュータント】2.02アプデ|アップデート1.4情報 - バイオミュータント攻略Wiki - Gamerch(ゲーマチ) 【ひな図書】リセマラ当たりランキング【日向坂図書館】 - Gamerch(ゲーマチ) ニーアレプリカントリメイク攻略wiki|ver.1.22 - AppMedia(アップメディア) アイプラ攻略Wiki|アイドリープライド - AppMedia(アップメディア) 【ウマ娘】ゴルシウィークはいつから?キャンペーン情報まとめ - Gamerch(ゲーマチ) シーズン66 - 【超速GP】ミニ四駆 超速グランプリ攻略まとめwiki - 電撃オンライン 乃木坂的フラクタル攻略Wiki - Gamerch(ゲーマチ) 「こんなことになるとは…」13年前のエイプリルフールについた“嘘”がネットで… ある男の告白(BuzzFeed Japan) - Yahoo!ニュース - Yahoo!ニュース 整理不要の情報共有ツール(社内Wiki)「Nerve」シードラウンドで総額約3500万円の資金調達を実施 - PR TIMES 【ウマ娘】隠しイベントの発生条件と効果まとめ - Gamerch(ゲーマチ) Nerve - 整理不要の情報共有ツール(社内Wiki) ローンチカスタマー募集開始のお知らせ - PR TIMES Among Us攻略Wiki【アマングアス・アモングアス】 - Gamerch(ゲーマチ) パニシンググレイレイヴン(パニグレ)攻略wiki - Gamerch(ゲーマチ) 【ひなこい】最強ひな写ランキング - ひなこい攻略Wiki - Gamerch(ゲーマチ) 稲作アクションRPG『天穂のサクナヒメ』における「農林水産省攻略wiki説」は本当なのか? - AUTOMATON スタスマ攻略Wiki【スタースマッシュ】 - Gamerch(ゲーマチ) 無料とは思えない多機能っぷりなWikiインフラ「Wiki.js」レビュー、自前でホスト&外部サービスと連携可能 - GIGAZINE Microsoft Teamsの基本と活用(24) TeamsのWikiを使う - マイナビニュース 『ゲーミングお嬢様』での提起が話題に “企業系wiki”に横たわる問題点とは - リアルサウンド 「エイリアンのたまご」,自動周回機能と公式wikiが登場 - 4Gamer.net 【リゼロス】Re ゼロから始める異世界生活 Lost in Memories攻略まとめwiki - 電撃オンライン パワプロ2021/2020攻略Wiki - Gamerch(ゲーマチ) ヌーラボ、「Backlog」の絵文字入力の補完機能やWiki編集の自動マージ機能を改善 - CodeZine(コードジン) ヌーラボ、プロジェクト管理ツール「Backlog」の絵文字入力の補完機能・Wiki編集の自動マージ機能を修正改善 - PR TIMES Backlog、Wikiにファイル添付が容易にできる機能をリリース -- グローバルバーの視認性改善なども実施 - PR TIMES
https://w.atwiki.jp/marifla/pages/24.html
LEVEL 7 森のステージ。 鍵ゴールをすれば、赤スイッチの SWICH PALACE へ行けるようになる。 攻略 まだないよ LEVEL 7の全体図
https://w.atwiki.jp/marifla/pages/21.html
LEVEL 4 黄色い地面が上下に動く洞窟のステージ。 鍵ゴールをすれば、黄色スイッチの SWICH PALACE へ行けるようになる。 攻略 まだないよ 鍵ゴール攻略 まだないよ LEVEL 4の全体図 by クラマリンゴ
https://w.atwiki.jp/okaraji/pages/17.html
▼AACとは? Advanced Audio Codingの略。mp3よりも圧縮効率が約1.4倍高い音声圧縮方式。同一の圧縮率だとmp3よりも高音質になる可能性もある。mp4(m4a)はAAC(素のデータ)をコンテナと言う入れ物に入れたものである。AACには大別するとLC-AACとHE-AACとがあり、それぞれエンコードの方法が違う。iPodやiTunesで使用されているm4aの拡張子のAACは、いわゆるLC-AACを使用している。HE-AACはAAC+とも呼ばれているもので、低ビットレートの環境で高い周波数再現性を確保する方法をとっているために、低ビットレート(16Kbps等)で高音質を実現できる。ストリーミングの場合、ダイアルアップ・ISDN等の低速度の回線でも聞きやすいという利点がある。又、ステレオ放送が簡単に出来るという強みもある。最近は認知されつつはあるが、対応ソフトが多いとはまだ言えないところがある。ライブドアねとらじの配信サーバーは最近、このAACのストリーミング放送に対応している。 ▼AAC放送を聞くには? Windows 通常のWMP(ウィンドウズメディアプレーヤー)では再生できません。プラグインで対応することが出来ますが、AAC対応のプレーヤーを使ったほうが簡単です。以下は現在再生確認が取れているプレーヤーです。 Winamp foobar2000 VLC media player MacOS 今現在、AAC、AAC+のストリーミング放送の再生のできるプレーヤーは残念ながらありません。 MacOS X iTunes、QuickTime Playerでは、AACストリーミング放送受信に対応していませんので、AACストリーミング受信可能なプレーヤーを別途インストールする必要があります。以下は現在再生確認が取れているプレーヤーです。 VLC media player FStream CPUにIntel製のCPUが乗っているMacでは、BootCampと言う機能を使用して、Windows XP SP2以上又はWindows Vistaをネイティブで起動させることにより、Windows用ソフトが使用できる。ただし、AppleではWin及び、ソフトウェアの動作保証はしていないので自己責任で行う事。別途でWindows用のUSBマウス、USBキーボードが必要。なお、BootCampはMacOS X Version10.5(Leopard)よりMacOS Xの機能として組み込まれている。 Unix/Linux等 XMMS ※プラグインが必要 ▼AAC放送を配信するには? Windows (耳袋の夜氏情報) 1・Winampのバージョン5,13以上の物をインストール。 Winampの日本語化パッチを入れたい人はここで入れるといいかも(バージョンが違うとエラーになるときがあります) 2・oddcastV3をインストール。この時AAC等のDLLもインストールしますか?と英語で聞かれるので必ず入れてください。 3・Winampを起動し、オプション→Visualization→select plug-in→DSP/Effect→oddcast DSP v3という順でoddcastV3を起動させます 4・Add Encoderを左クリックし、Encodersettingsに新しくでたものを右クリック。 その中のConfigureを左クリックしConfigurationを出します。 5・Basicsettingsで上から5番目にあるEncoderTypeをAACplusに変えます 6・EncorderTypeをAACPlusにするとBitrateが設定できるので放送したいBit数を入れます (自分の場合は16kbpsなので16と半角で入れます) 7・Qualityを飛ばして、Samplerateを44100とします。 8・channelsは2でステレオ(AACはステレオで効果を発揮します)にします。 ここで1とすればモノラルにできますが、やむを得ずモノラル放送にする場合 7のSamplerateを22050と設定してください。 9・serverTypeをIcecast2にしserverIP・serverport・Encoderpasswordはねとらじ準拠のものに設定してください。 10・mountpoint(これが/*****.m3uの/*****の部分になります。必ず/を忘れないように)を自分の好きなように入れてください。 ↑で放送できるまで設定完了です 次にYPsettingsに移りstreamnameと書いているものが放送のタイトルです stream Descriptionはねとらじでは使いませんので、何も書かないでください streamURLは関連サイトのURL streamGenreはジャンル等を書いてください これで設定は完了です MacOS(Classic) 残念ながら今の所放送できるブロードキャストソフトはありません。 MacOS X LadioCast Ver.0.7.5でAAC(LC-AAC)配信が出来るようになりました。MacOS X 10.4以上対応 「設定方法」 1.LadioCastを立ち上げる 2.上部にある3つのボタンのうちの「接続」のボタンを押す 3.以下の様に設定する サーバアドレス:ねとらじのサーバーアドレスを入力する(例)203.131.199.132 ポート:ねとらじのポート番号を入力(例)8060 マウント:マウントポイントを入力する(例)occult.aac ユーザ:[source]と入力する パスワード:[ladio]と入力する 文字セット:Japanese(Shift JIS)に設定 番組名:番組名を入力(例)○○○のオカルトラジオ ジャンル:ジャンルを入力(例)実話怪談と朗読。たまにエロ話 URL 参照URLを入力(例)ttp //jbbs.livedoor.jp/bbs/read.cgi/YYYYY/XXXX/ZZZZZZZZZ/ 説明:空欄のままでよい 4.上部にある3つのボタンのうちの「エンコーディング」のボタンを押す 5.以下の様に設定する フォーマット:AACに設定する サンプルレート(Hz):サンプルレートを設定する (24000に設定すると良いでしょう) ビットレートモード:ビットレートモードを設定する (一定で問題ありません) ビットレート(kb/s):ビットレートを入力する (48Kbpsに設定すると良いでしょう) クオリティレベル:(Ogg配信時に使用するものなので設定できないようになっている) チャンネル:Mono及びStereoのどちらかのラジオボタンにチェックを入れる (上記の設定ではステレオでの配信で問題ありません) 後は入力、出力の設定をして「接続する」ボタンを押すだけです。 Unix/Linux等 XMMS DarkIce ▼情報・お問い合わせはこちら オカラジDJ用スキルアップの為のスレ
https://w.atwiki.jp/tkonishi73/pages/398.html
(前回)1.画像の取り込み方 使える画像は、GIF形式(ペイントで手書き) JPEG形式(デジカメ写真) ※画像サイズは、640×480くらいのサイズにする。 でかいと重い!→スライドインに時間がかかる 画像サイズ変更のソフト「リサイズ超簡単!Pro」 自宅のPCにダウンロードしてセットアップする。 step1~step3 で変換できる。 2.音楽ファイルについて WMA=Windows Media Audio MP3=MPeg layer 3 取り込みたい音楽ファイルをUSBメモリに保存すること (どこから取るのか) 音楽をWindows Media Playerか、itunesで取り込む。 PC教室の場合、Windows Media Playerで取り込む。 「学生」→「マイミュージック」フォルダに 保存されている。(たぶん、itunesも同じ) スマフォ(Android)の場合 PCとケーブルで接続し、表示されるフォルダの中で 「DCIM」フォルダなどに音楽ファイルは保存される。 一度、探してみることを勧める。そのファイルを USBメモリに保存する。 スマフォ(iphone)の場合 PCとケーブル接続し、「同期」をさせない。 (itunesに接続したデバイスが表示したら、 右クリック「設定」を押す。その後、設定画面) フォルダが表示されれば、開いてUSBに保存。 (来週までの宿題!) ・タイトル(内容)を(アバウトに)決めてくる。 ・利用する写真データ(サイズを小さくする)と BGMの音楽ファイルをUSBに保存する。 ・次回からビデオクリップを作りはじめます!
https://w.atwiki.jp/shobosaba/pages/54.html
本サーバーでPvPが開催されることはあまりありません。PvPはHunger Games Mixerというプラグインを用いた専用サーバーを建てて開催します。 参加募集開始はShoboSukeが枠を取ったり、Skypeで内部募集したりさまざまですが、サーバー管理者の都合によって決まります。 また、開催時には本サーバーは試合終了(何回試合するかは日によってバラバラです)までストップされますのでご注意ください。 ルール・仕様等詳細はこちら
https://w.atwiki.jp/sampleisbest/pages/156.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 TestPlayer アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト 文字セット Unicode 参考 イベントへの応答 TestPlayer.cpp // Unicode文字セット #pragma comment(lib, "strmiids.lib") #include DShow.h #include evr.h #include CommCtrl.h #include "resource.h" #define SAFE_RELEASE(x) { if (x) { x- Release(); x = NULL; } } #define LTRB(rect) rect.left, rect.top, rect.right, rect.bottom #define CLASS_NAME TEXT("TestPlayer") #define WINDOW_NAME TEXT("TestPlayer") #define PANEL_H 32// パネルの高さ #define THUMB_W 16// つまみの幅 #define TIMER1 1// シーク時間定期描画 #define TIMER2 2// コントロール遅延描画 #define WM_GRAPHNOTIFY (WM_APP + 1) enum Ctrl {VIDEO, PLAY, STOP, SEEK, MESSAGE, VOLUME, PANEL, CTRL_NUM}; enum State {NO_FILE, STOPPED, PAUSED, RUNNING}; // 関数プロトタイプ宣言 HWND CreateWnd(HINSTANCE hInstance, int nCmdShow); void Trace(LPCTSTR format, ...); LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); void OnTimer(HWND hWnd, WPARAM wParam); void UpdateSeek(HWND hWnd); void DrawSeek(HDC hdc); BOOL OnCommand(HWND hWnd, WPARAM wParam); void SeekFrame(HWND hWnd, WORD wID); void OnGraphNotify(HWND hWnd); void OnLButtonDown(HWND hWnd, LPARAM lParam); void OnLButtonUp(HWND hWnd, LPARAM lParam); int HitTest(POINT pt); void OnPlay(HWND hWnd); void OnStop(HWND hWnd); void StartTimer(HWND hWnd); void StopTimer(HWND hWnd); void OnPaint(HWND hWnd); void OnSize(HWND hWnd, WPARAM wParam, LPARAM lParam); void OnDropFiles(HWND hWnd, WPARAM wParam); void OnCreate(HWND hWnd); void InitGraph(HWND hWnd); void ReleaseGraph(HWND hWnd); HRESULT OpenFile(HWND hWnd, LPCWSTR pszFileName); HRESULT InitEvr(HWND hWnd); void AdjustWnd(HWND hWnd, int nMode); // 外部変数構造体 static struct { TCHAR szPath[MAX_PATH];// 動画ファイルのフルパス TCHAR szFile[MAX_PATH];// 動画ファイル名 RECT rc[CTRL_NUM];// コントロール領域 BOOL bMouseCap;// マウスキャプチャフラグ int nCtrl;// クリックされたコントロール State state;// 状態フラグ UINT_PTR uIDEvent;// タイマID int nRange;// シーク範囲 LONGLONG llCurr;// 動画の現在時間 LONGLONG llEnd;// 動画の終了時間 TCHAR szEnd[11+1];// 動画の終了時間 00 00 00.00 SIZE size;// 動画の幅と高さ IGraphBuilder *pGraph; IMediaControl *pControl; IMediaSeeking *pSeek; IMediaEventEx *pEvent; IMFVideoDisplayControl *pVideo; } g; //============================================================================== int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { HWND hWnd; MSG msg; HACCEL hAccTable; LPTSTR pszCmdLine; LPTSTR *argv; int argc; HRESULT hr; // COMライブラリの初期化 hr = CoInitialize(NULL); if (FAILED(hr)) { return 0; } msg.wParam = 0;// ウィンドウ作成失敗時の戻り値 g.size.cx = 640; g.size.cy = 480; // コマンド引数の取得 pszCmdLine = GetCommandLine(); argv = CommandLineToArgvW(pszCmdLine, argc); if (2 = argc) { wcscpy_s(g.szPath, argv[1]); } // ウィンドウの作成 hWnd = CreateWnd(hInstance, nCmdShow); if (hWnd == NULL) { goto Exit; } // メッセージループ hAccTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDR_MAIN)); while (GetMessage( msg, NULL, 0, 0)) { if (TranslateAccelerator(msg.hwnd, hAccTable, msg) == 0) { TranslateMessage( msg); DispatchMessage( msg); } } Exit CoUninitialize(); return msg.wParam; } //------------------------------------------------------------------------------ HWND CreateWnd(HINSTANCE hInstance, int nCmdShow) { WNDCLASSEX wcx; HWND hWnd; // ウィンドウクラスの登録 ZeroMemory( wcx, sizeof wcx); wcx.cbSize= sizeof wcx; wcx.style= CS_HREDRAW | CS_VREDRAW; wcx.lpfnWndProc= MainWndProc; wcx.hInstance= hInstance; wcx.hCursor= LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)); wcx.hbrBackground= (HBRUSH)(COLOR_BTNFACE + 1); wcx.lpszClassName= CLASS_NAME; if (RegisterClassEx( wcx) == 0) { return NULL; } // ウィンドウの作成 hWnd = CreateWindowEx( WS_EX_ACCEPTFILES, CLASS_NAME, WINDOW_NAME, WS_OVERLAPPEDWINDOW, //CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, 100, 100, g.size.cx, g.size.cy, NULL, NULL, hInstance, NULL); if (hWnd) { ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); } return hWnd; } //------------------------------------------------------------------------------ void Trace(LPCTSTR format, ...) { va_list arg_ptr; TCHAR buffer[256]; int size; va_start(arg_ptr, format); size = _vsnwprintf_s(buffer, _TRUNCATE, format, arg_ptr); va_end(arg_ptr); OutputDebugString(buffer); if (size 0) { OutputDebugString(L"...\n"); } } //============================================================================== LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_TIMER OnTimer(hWnd, wParam); break; case WM_COMMAND if (OnCommand(hWnd, wParam) == FALSE) { return DefWindowProc(hWnd, uMsg, wParam, lParam); } break; case WM_GRAPHNOTIFY OnGraphNotify(hWnd); break; case WM_LBUTTONDOWN OnLButtonDown(hWnd, lParam); break; case WM_LBUTTONUP OnLButtonUp(hWnd, lParam); break; case WM_PAINT OnPaint(hWnd); break; case WM_SIZE OnSize(hWnd, wParam, lParam); break; case WM_DROPFILES OnDropFiles(hWnd, wParam); DragFinish((HDROP)wParam); break; case WM_CREATE OnCreate(hWnd); break; case WM_DESTROY ReleaseGraph(hWnd); PostQuitMessage(0); break; default return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; } //------------------------------------------------------------------------------ void OnTimer(HWND hWnd, WPARAM wParam) { switch (wParam) { case TIMER1 if (g.pSeek) { g.pSeek- GetCurrentPosition( g.llCurr); UpdateSeek(hWnd); } break; case TIMER2 InvalidateRect(hWnd, g.rc[PANEL], TRUE); KillTimer(hWnd, wParam); break; } } //------------------------------------------------------------------------------ void UpdateSeek(HWND hWnd) { HDC hdc; hdc = GetDC(hWnd); DrawSeek(hdc); ReleaseDC(hWnd, hdc); } //------------------------------------------------------------------------------ void DrawSeek(HDC hdc) { HBRUSH hBrush; RECT rc; int nPos; hBrush = GetSysColorBrush(COLOR_BTNFACE); SelectObject(hdc, hBrush); SetBkMode(hdc, TRANSPARENT); Rectangle(hdc, LTRB(g.rc[SEEK])); Rectangle(hdc, LTRB(g.rc[MESSAGE])); if (g.state == NO_FILE) { return; } // シークバー nPos = (int)(g.nRange * g.llCurr / g.llEnd); nPos += g.rc[SEEK].left; SetRect( rc, nPos, g.rc[SEEK].top, nPos + THUMB_W, g.rc[SEEK].bottom); Rectangle(hdc, LTRB(rc)); // メッセージ TCHAR szBuf[26+1]; int nCurr; nCurr = (int)(g.llCurr / 100000LL); swprintf_s(szBuf, L" %02d %02d %02d.%02d / %s", nCurr / 360000, (nCurr / 6000) % 60, (nCurr / 100) % 60, nCurr % 100, g.szEnd); DrawText(hdc, szBuf, -1, g.rc[MESSAGE], DT_SINGLELINE | DT_VCENTER); } //------------------------------------------------------------------------------ BOOL OnCommand(HWND hWnd, WPARAM wParam) { WORD wID = LOWORD(wParam); switch (wID) { case ID_ENTER ShowWindow(hWnd, IsZoomed(hWnd) ? SW_SHOWNOACTIVATE SW_MAXIMIZE); break; case ID_ESCAPE DestroyWindow(hWnd); break; case ID_PLAY OnPlay(hWnd); break; case ID_LEFT case ID_LEFT_CTRL case ID_LEFT_SHIFT case ID_RIGHT case ID_RIGHT_CTRL case ID_RIGHT_SHIFT SeekFrame(hWnd, wID); break; case ID_NUM1 case ID_NUM2 case ID_NUM3 case ID_NUM4 AdjustWnd(hWnd, (wID - ID_NUM1) + 1); break; case ID_STOP OnStop(hWnd); break; default return FALSE; } return TRUE; } //------------------------------------------------------------------------------ // ポーズ: 3f Ctrl 1f Shift 1s // 再生時:10s Ctrl 5s Shift 60s void SeekFrame(HWND hWnd, WORD wID) { static const LONGLONG llRunning[] = { -100000000LL, -50000000LL, -600000000LL, 100000000LL, 50000000LL, 600000000LL }; LONGLONG llFrame; switch (g.state) { case PAUSED switch (wID) { case ID_LEFT llFrame = -3000000000LL / 2997LL;// 3f = 0.1001001s break; case ID_LEFT_CTRL llFrame = -1000000000LL / 2997LL;// 1s / 29.97f = 0.0333667s break; case ID_LEFT_SHIFT llFrame = -10000000LL; break; case ID_RIGHT llFrame = 3000000000LL / 2997LL; break; case ID_RIGHT_CTRL llFrame = 1000000000LL / 2997LL; break; case ID_RIGHT_SHIFT llFrame = 10000000LL; break; } break; case RUNNING llFrame = llRunning[wID - ID_LEFT]; break; default return; } g.llCurr += llFrame; g.llCurr = max(g.llCurr, 0LL); g.llCurr = min(g.llCurr, g.llEnd); g.pSeek- SetPositions( g.llCurr, AM_SEEKING_AbsolutePositioning, NULL, 0); UpdateSeek(hWnd); } //------------------------------------------------------------------------------ void OnGraphNotify(HWND hWnd) { long lEvCode, lParam1, lParam2; Trace(L"OnGraphNotify\n"); if (g.pEvent == NULL) { return; } while (SUCCEEDED(g.pEvent- GetEvent( lEvCode, lParam1, lParam2, 0))) { g.pEvent- FreeEventParams(lEvCode, lParam1, lParam2); Trace(L"lEvCode=%#x\n", lEvCode); switch (lEvCode) { case EC_COMPLETE OnPlay(hWnd); break; } } } //------------------------------------------------------------------------------ void OnLButtonDown(HWND hWnd, LPARAM lParam) { POINT pt; SetCapture(hWnd); g.bMouseCap = TRUE; POINTSTOPOINT(pt, lParam); g.nCtrl = HitTest(pt); } //------------------------------------------------------------------------------ void OnLButtonUp(HWND hWnd, LPARAM lParam) { POINT pt; if (g.bMouseCap == FALSE) { return; } ReleaseCapture(); g.bMouseCap = FALSE; POINTSTOPOINT(pt, lParam); if (HitTest(pt) != g.nCtrl) { return; } switch (g.nCtrl) { case PLAY OnPlay(hWnd); break; case STOP OnStop(hWnd); break; case SEEK { int nPos; if (g.state = STOPPED) { break; } nPos = (pt.x - g.rc[SEEK].left) - THUMB_W / 2; nPos = max(nPos, 0); nPos = min(nPos, g.nRange); g.llCurr = g.llEnd * nPos / g.nRange; g.pSeek- SetPositions( g.llCurr, AM_SEEKING_AbsolutePositioning, NULL, 0); UpdateSeek(hWnd); } break; } } //------------------------------------------------------------------------------ int HitTest(POINT pt) { int n; for (n = 0; n CTRL_NUM; n++) { if (PtInRect(g.rc + n, pt)) { return n; } } return -1; } //------------------------------------------------------------------------------ void OnPlay(HWND hWnd) { switch (g.state) { case NO_FILE break; case STOPPED case PAUSED g.pControl- Run(); g.state = RUNNING; StartTimer(hWnd); break; case RUNNING g.pControl- Pause(); g.state = PAUSED; StopTimer(hWnd); g.pSeek- GetCurrentPosition( g.llCurr); break; } } //------------------------------------------------------------------------------ void OnStop(HWND hWnd) { if (g.state = STOPPED) { return; } g.pControl- Stop(); g.state = STOPPED; StopTimer(hWnd); g.llCurr = 0LL; g.pSeek- SetPositions( g.llCurr, AM_SEEKING_AbsolutePositioning, NULL, 0); UpdateSeek(hWnd); } //------------------------------------------------------------------------------ void StartTimer(HWND hWnd) { g.uIDEvent = SetTimer(hWnd, TIMER1, 1000, NULL); } //------------------------------------------------------------------------------ void StopTimer(HWND hWnd) { if (g.uIDEvent == 0) { return; } KillTimer(hWnd, TIMER1); g.uIDEvent = 0; } //------------------------------------------------------------------------------ void OnPaint(HWND hWnd) { HDC hdc; PAINTSTRUCT ps; Trace(L"OnPaint\n"); if (g.pVideo) { g.pVideo- RepaintVideo(); } hdc = BeginPaint(hWnd, ps); DrawSeek(hdc); Rectangle(hdc, LTRB(g.rc[PLAY])); DrawText(hdc, L"Play", -1, g.rc[PLAY], DT_SINGLELINE | DT_VCENTER | DT_CENTER); Rectangle(hdc, LTRB(g.rc[STOP])); DrawText(hdc, L"Stop", -1, g.rc[STOP], DT_SINGLELINE | DT_VCENTER | DT_CENTER); Rectangle(hdc, LTRB(g.rc[VOLUME])); DrawText(hdc, L"Volume", -1, g.rc[VOLUME], DT_SINGLELINE | DT_VCENTER | DT_CENTER); EndPaint(hWnd, ps); } //------------------------------------------------------------------------------ void OnSize(HWND hWnd, WPARAM wParam, LPARAM lParam) { POINTS pts; RECT rc; LONG lPanelT; LONG lSeekB; pts = MAKEPOINTS(lParam); Trace(L"OnSize(%u, %d, %d)\n", wParam, pts.x, pts.y); if (wParam == SIZE_MINIMIZED) { return; } lPanelT = pts.y - PANEL_H; SetRect( g.rc[VIDEO], 0, 0, pts.x, lPanelT); SetRect( rc, 0, lPanelT, pts.x, pts.y); lSeekB = rc.top + 12; g.rc[PANEL] = rc; SetRect( g.rc[PLAY], 0, rc.top, 40, rc.bottom); SetRect( g.rc[STOP], 40, rc.top, 80, rc.bottom); SetRect( g.rc[SEEK], 80, rc.top, rc.right, lSeekB); SetRect( g.rc[MESSAGE], 80, lSeekB, rc.right - 80, rc.bottom); SetRect( g.rc[VOLUME], rc.right - 80, lSeekB, rc.right, rc.bottom); g.nRange = (g.rc[SEEK].right - g.rc[SEEK].left) - THUMB_W; // ビデオ出力位置のセット if (g.pVideo) { MFVideoNormalizedRect mvnr = {0.0f, 0.0f, 1.0f, 1.0f}; g.pVideo- SetVideoPosition( mvnr, g.rc[VIDEO]); } if (g.state == RUNNING) { SetTimer(hWnd, TIMER2, 100, NULL); } } //------------------------------------------------------------------------------ void OnDropFiles(HWND hWnd, WPARAM wParam) { HDROP hDrop = (HDROP)wParam; ReleaseGraph(hWnd); DragQueryFile(hDrop, 0, g.szPath, _countof(g.szPath)); InitGraph(hWnd); } //------------------------------------------------------------------------------ void OnCreate(HWND hWnd) { Trace(L"OnCreate\n"); if (g.szPath[0]) { InitGraph(hWnd); } } //------------------------------------------------------------------------------ void InitGraph(HWND hWnd) { TCHAR szBuf[280]; TCHAR szDrive[_MAX_DRIVE]; TCHAR szDir[_MAX_DIR]; TCHAR szFName[_MAX_FNAME]; TCHAR szExt[_MAX_EXT]; int nEnd; HRESULT hr; // DirectShowフィルタの準備 hr = OpenFile(hWnd, g.szPath); if (FAILED(hr)) { return; } g.state = STOPPED; // タイトルバー _wsplitpath_s(g.szPath, szDrive, szDir, szFName, szExt); _wmakepath_s(g.szFile, NULL, NULL, szFName, szExt); swprintf_s(szBuf, L"%s - %s", g.szFile, WINDOW_NAME); SetWindowText(hWnd, szBuf); // 停止タイムの取得 hr = g.pSeek- GetStopPosition( g.llEnd); nEnd = (int)(g.llEnd / 100000LL); swprintf_s(g.szEnd, L"%02d %02d %02d.%02d", nEnd / 360000, (nEnd / 6000) % 60, (nEnd / 100) % 60, nEnd % 100); // 動画再生 OnPlay(hWnd); } //------------------------------------------------------------------------------ void ReleaseGraph(HWND hWnd) { StopTimer(hWnd); if (g.pControl) { g.pControl- Stop(); g.state = NO_FILE; Sleep(500); } if (g.pEvent) { g.pEvent- SetNotifyWindow(NULL, 0, 0); } SAFE_RELEASE(g.pVideo); SAFE_RELEASE(g.pEvent); SAFE_RELEASE(g.pSeek); SAFE_RELEASE(g.pControl); SAFE_RELEASE(g.pGraph); } //============================================================================== HRESULT OpenFile(HWND hWnd, LPCWSTR pszFile) { // フィルタグラフの作成 HRESULT hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS( g.pGraph)); // メディアコントロールインターフェイスの取得 if (SUCCEEDED(hr)) { hr = g.pGraph- QueryInterface(IID_PPV_ARGS( g.pControl)); } // ビデオの作成 if (SUCCEEDED(hr)) { hr = InitEvr(hWnd); } // グラフを作成する if (SUCCEEDED(hr)) { hr = g.pGraph- RenderFile(pszFile, NULL); } // シークインターフェイス DWORD dwCaps; if (SUCCEEDED(hr)) { hr = g.pGraph- QueryInterface(IID_PPV_ARGS( g.pSeek)); } if (SUCCEEDED(hr)) { hr = g.pSeek- GetCapabilities( dwCaps);// 55 0x37 0011.0111 AM_SEEKING_CanSeekAbsolute; } if (SUCCEEDED(hr)) { hr = g.pSeek- IsFormatSupported( TIME_FORMAT_MEDIA_TIME); // frame=false } // イベント if (SUCCEEDED(hr)) { hr = g.pGraph- QueryInterface(IID_PPV_ARGS( g.pEvent)); } if (SUCCEEDED(hr)) { hr = g.pEvent- SetNotifyWindow((OAHWND)hWnd, WM_GRAPHNOTIFY, 0); } // 描画領域の設定 if (SUCCEEDED(hr)) { g.pVideo- GetNativeVideoSize( g.size, NULL); } if (SUCCEEDED(hr)) { AdjustWnd(hWnd, 2); } return hr; } //------------------------------------------------------------------------------ HRESULT InitEvr(HWND hWnd) { IBaseFilter *pEvr = NULL; // EVRの作成 HRESULT hr = CoCreateInstance(CLSID_EnhancedVideoRenderer, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS( pEvr)); // フィルタグラフにEVRを追加 if (SUCCEEDED(hr)) { hr = g.pGraph- AddFilter(pEvr, L"EVR"); } IMFGetService *pService = NULL; if (SUCCEEDED(hr)) { hr = pEvr- QueryInterface(IID_PPV_ARGS( pService)); } if (SUCCEEDED(hr)) { hr = pService- GetService(MR_VIDEO_RENDER_SERVICE, IID_PPV_ARGS( g.pVideo)); } SAFE_RELEASE(pService); if (SUCCEEDED(hr)) { hr = g.pVideo- SetVideoWindow(hWnd); } SAFE_RELEASE(pEvr); return hr; } //------------------------------------------------------------------------------ void AdjustWnd(HWND hWnd, int nMode) { RECT rc; SetRect( rc, 0, 0, g.size.cx * nMode / 2, g.size.cy * nMode / 2 + PANEL_H); AdjustWindowRectEx( rc, WS_OVERLAPPEDWINDOW, FALSE, 0); SetWindowPos(hWnd, NULL, 0, 0, rc.right - rc.left, rc.bottom - rc.top, SWP_NOZORDER | SWP_NOMOVE); } resource.h #define IDR_MAIN128 #define ID_ENTER129 #define ID_ESCAPE130 #define ID_PLAY131 #define ID_LEFT132 #define ID_LEFT_CTRL133 #define ID_LEFT_SHIFT134 #define ID_RIGHT135 #define ID_RIGHT_CTRL136 #define ID_RIGHT_SHIFT137 #define ID_NUM1138 #define ID_NUM2139 #define ID_NUM3140 #define ID_NUM4141 #define ID_STOP142 TestPlayer.rc // resource script #include windows.h #include "resource.h" //------------------------------------------------------------------------------ // アクセラレータ IDR_MAIN ACCELERATORS BEGIN VK_RETURN,ID_ENTER,VIRTKEY// 0x0D VK_ESCAPE,ID_ESCAPE,VIRTKEY// 0x1B VK_SPACE,ID_PLAY,VIRTKEY// 0x20 VK_LEFT,ID_LEFT,VIRTKEY// 0x25 VK_LEFT,ID_LEFT_CTRL,VIRTKEY, CONTROL VK_LEFT,ID_LEFT_SHIFT,VIRTKEY, SHIFT VK_RIGHT,ID_RIGHT,VIRTKEY// 0x27 VK_RIGHT,ID_RIGHT_CTRL,VIRTKEY, CONTROL VK_RIGHT,ID_RIGHT_SHIFT,VIRTKEY, SHIFT "1",ID_NUM1,VIRTKEY "2",ID_NUM2,VIRTKEY "3",ID_NUM3,VIRTKEY "4",ID_NUM4,VIRTKEY "S",ID_STOP,VIRTKEY END